/**
 * @class Login
 * @param form
 * @returns
 */
function Login(form){
	
	/**
	 * @field
	 */
	var that = this;
	/**
	 * @field
	 */
	var form = $(form);
	/**
	 * @field
	 */
	this.ErrorVal = {
		username_login:true,
		password_login:true
	}
	/**
	 * @field
	 */
	this.validationRules = {
		username_login:/^[a-zA-Z0-9_\-\.]{4,40}$/,
		password_login:/^[a-zA-Z0-9_\-\.]{6,40}$/
	}
	/**
	 * @field
	 */
	this.errorValMessages = {
		username_login:'Username non corretto',
		password_login:'Password non corretta'
	}
	/**
	 * Aggiunge eventi ai campi input
	 */
	this.addValidation = function() {
		
		var input = form.find('input[name]');
		
		input.each(function(){
			//Se non e' in lista saltalo
			var trovato = false;
			for(var i in that.validationRules){
				if(i == $(this).attr('name')){
					trovato = true;
					break;
				}
			}
			
			//Non in lista lo salto!
			if(!trovato){
				return;
			}
			
			$(this).change(function(){
				
				var campo_risposta = $(this).parent().find('.risposta');
				var value = $(this).val();
				var name = $(this).attr('name');
				
				var result = value.match(that.validationRules[name]);
				
				if(result == null || result.length != 1){
				
					
					if(campo_risposta.hasClass('ok')){
						campo_risposta.removeClass('ok');
					}
					
					campo_risposta.html(that.errorValMessages[name]).addClass('errore');
					
					that.ErrorVal[name] = true;
					
				}else{
					
					if(campo_risposta.hasClass('errore')){
						campo_risposta.removeClass('errore');
					}
					
					campo_risposta.html('Campo corretto!');
					campo_risposta.addClass('ok');
					
					that.ErrorVal[name] = false;
				}
			});
		});
		
		if(window.console && window.debug){
			window.console.info('Validazioni aggiunte correttamente!');
		}
		
	}
	/**
	 * Controlla il submit
	 */
	this.addSubmit = function(){
		
		form.submit(function(){}).unbind('submit');
		
		form.submit(function(){
			
			for(var i in that.ErrorVal){
				form.find('input[name='+i+']').trigger('change');
			}
			
			for(var i in that.ErrorVal){
				
				if(that.ErrorVal[i] == true){
					window.messaggioPopup.display('Errore','Alcuni dei campi non sono validi!');
					return false;
				}
			}
			
			return true;
		});
	}
	
	this.addValidation();
	this.addSubmit();
	
}